package com.blog.dao;

import java.util.List;

import com.blog.BO.UserBO;
import com.blog.entity.User;

/**
 * @author 蒲鑫
 * @function 功能：审核用户的相关操作
 * @date 2023年6月1日
 */
public interface CheckUserDao {
	/**
	 * @author 蒲鑫
	 * @function 功能：查询用户审核表中所有符合条件的用户，条件为null时查询全部
	 * @parameter 传入参数：查询的条件user，第几页pageNum，每一页大小pageSize
	 * @return 返回值：返回所有符合条件的用户List<User>
	 * @date 2023年5月31日
	 */
	public List<User> selectCheckUser(UserBO userBO,int pageNum,int pageSize);
	
	/**
	 * @author 蒲鑫
	 * @function 功能：查询用户表的全部条数
	 * @parameter 传入参数：
	 * @return 返回值：返回用户表全部条数
	 * @date 2023年5月31日
	 */
	public int selectCheckUserNum();
	
	/**
	 * @author 蒲鑫
	 * @function 功能：通过用户id查询用户
	 * @parameter 传入参数：用户id
	 * @return 返回值：返回通过id查询到的User/没有就返回null
	 * @date 2023年5月31日
	 */
	public User selectCheckUserByUserId(int userId);
	
	/**
	 * @author 蒲鑫
	 * @function 功能：通过用户名准确查询用户
	 * @parameter 传入参数：用户名
	 * @return 返回值：返回通过用户名查询到的User/没有就返回null
	 * @date 2023年5月31日
	 */
	public User selectCheckUserByUserName(String userName);
	
	/**
	 * @author 蒲鑫
	 * @function 功能：通过用户电话准确查询用户
	 * @parameter 传入参数：用户电话
	 * @return 返回值：返回通过用户电话查询到的User/没有就返回null
	 * @date 2023年5月31日
	 */
	public User selectCheckUserByUserPhone(String userPhone);
	
	/**
	 * @author 蒲鑫
	 * @function 功能：通过用户邮箱准确查询用户
	 * @parameter 传入参数：用户邮箱
	 * @return 返回值：返回通过用户邮箱查询到的User/没有就返回null
	 * @date 2023年5月31日
	 */
	public User selectCheckUserByUserEmail(String userEmail);
	
	/**
	 * @author 蒲鑫
	 * @function 功能：添加一条新的用户user
	 * @parameter 传入参数：注册时的用户数据user
	 * @return 返回值：返回影响行数，1为成功
	 * @date 2023年5月31日
	 */
	public int insertCheckUser(User user);
	
	/**
	 * @author 蒲鑫
	 * @function 功能：通过用户id删除用户
	 * @parameter 传入参数：用户id
	 * @return 返回值：返回影响行数，1为成功
	 * @date 2023年5月31日
	 */
	public int deleteCheckUserByUserId(int userId);
	
	/**
	 * @author 蒲鑫
	 * @function 功能：通过传入的用户更新所属id用户信息
	 * @parameter 传入参数：修改后的用户数据
	 * @return 返回值：返回影响行数，1为成功
	 * @date 2023年5月31日
	 */
	public int updateCheckUser(User user);
}
